Over the past several years, enterprise applications have grown in popularity. These applications, including without limitation, financial management applications, customer relations management (“CRM”) software, supply chain management software, enterprise resource planning (“ERP”) software and the like, provide businesses with enhanced efficiency and flexibility in producing and delivering goods and services. Oracle Corp.'s E-Business Suite™ provides several such applications within a single integrated suite, for example.
More recently, the field of data mining has provided an additional benefit to such businesses. Through data mining, many businesses have been able to identify previously-hidden trends and patterns within large datasets, in particular datasets produced by enterprise applications (and other computer processes) and/or datasets stored in relational databases, such as Oracle 10g™, available from Oracle Corporation. This ability has further promoted efficiency in such organizations.
Business activity monitoring (“BAM”) represents a specific type of data mining. Generally, a business activity is modeled using a “business flow,” which can be thought of as a group of related events that together form the business activity that is monitored with the BAM process. BAM generally comprises providing real-time (or near-real time) access to key business performance indicators and other metrics, which can provide timely insight into business performance, allowing for even greater flexibility and efficiency in business processes. A “metric” evaluates a desired expression against a single instance of a business flow, while a “key performance indicator” (“KPI”) evaluates an expression against multiple instances of a business flow.
Consider, for example, a business flow for daily sales activity. Each event in the business flow might comprise the sales data for a particular region. One metric of this business flow might be a metric measuring the sales amount of an invoice, which might be calculated by combining the sales amounts of individual line items on the invoice. A KPI for this business flow might be a monthly sales figure, which would be the aggregate value of the sales data for each daily business flow over the course of a month.
Traditionally, BAM has been implemented as a database-centric process. In other words, in a typical environment, data from one or more events are stored in a database, and a BAM process periodically queries the database for the data necessary to calculate the desired metrics and/or KPIs. Such processes often use database triggers, data mining tools and/or the like to obtain the necessary data from the database. Such solutions, however, do not provide truly real-time access to the relevant data. Instead, the metrics and KPIs are calculated from historical data, which has already been stored in the database.
Moreover, database-centric BAM solutions often do not scale gracefully in proportion to the generation rate of events. If a given database is used both to service an enterprise application and as a source for BAM queries, the database can become a performance bottleneck as it attempts both to store new data and to provide that data for BAM calculations.